public class DeleteRepeat {
    public static class ListNode {
        int val;
        ListNode next;
        ListNode() {}
        ListNode(int val) {
            this.val = val;
        }
        ListNode(int val, ListNode next) {
            this.val = val;
            this.next = next;
        }
    }
  //问题在于：给的这些头节点我是不是还要手动给他们连成链表？

      public ListNode removeElements(ListNode head, int val) {
          ListNode dummyHead = new ListNode(0);
          dummyHead.next = head;
          ListNode temp = dummyHead;
          while (temp.next != null) {
              if (temp.next.val == val) {
                  temp.next = temp.next.next;
              } else {
                  temp = temp.next;
              }
          }
          return dummyHead.next;
      }
    public static void main(String[] args) {
        ListNode a = new ListNode(3);
        ListNode b = new ListNode(3);
        ListNode c = new ListNode(5);
        ListNode d = new ListNode(8);
        ListNode e = new ListNode(3);
        ListNode f = new ListNode(9);
        ListNode g = new ListNode(3);
        a.next = b;
        b.next = c;
        c.next = d;
        d.next = e;
        e.next = f;
        f.next = g;
        DeleteRepeat deleteRepeat = new DeleteRepeat();
        ListNode listNode = deleteRepeat.removeElements(a,3);
        System.out.println(listNode.val);
    }
}
